using System.Text.Json.Serialization;

namespace Wabbajack.DTOs.Texture;

[JsonConverter(typeof(JsonStringEnumConverter))]
public enum DXGI_FORMAT : uint
{
    UNKNOWN = 0,
    R32G32B32A32_TYPELESS = 1,
    R32G32B32A32_FLOAT = 2,
    R32G32B32A32_UINT = 3,
    R32G32B32A32_SINT = 4,
    R32G32B32_TYPELESS = 5,
    R32G32B32_FLOAT = 6,
    R32G32B32_UINT = 7,
    R32G32B32_SINT = 8,
    R16G16B16A16_TYPELESS = 9,
    R16G16B16A16_FLOAT = 10, // 0x0000000A
    R16G16B16A16_UNORM = 11, // 0x0000000B
    R16G16B16A16_UINT = 12, // 0x0000000C
    R16G16B16A16_SNORM = 13, // 0x0000000D
    R16G16B16A16_SINT = 14, // 0x0000000E
    R32G32_TYPELESS = 15, // 0x0000000F
    R32G32_FLOAT = 16, // 0x00000010
    R32G32_UINT = 17, // 0x00000011
    R32G32_SINT = 18, // 0x00000012
    R32G8X24_TYPELESS = 19, // 0x00000013
    D32_FLOAT_S8X24_UINT = 20, // 0x00000014
    R32_FLOAT_X8X24_TYPELESS = 21, // 0x00000015
    X32_TYPELESS_G8X24_UINT = 22, // 0x00000016
    R10G10B10A2_TYPELESS = 23, // 0x00000017
    R10G10B10A2_UNORM = 24, // 0x00000018
    R10G10B10A2_UINT = 25, // 0x00000019
    R11G11B10_FLOAT = 26, // 0x0000001A
    R8G8B8A8_TYPELESS = 27, // 0x0000001B
    R8G8B8A8_UNORM = 28, // 0x0000001C
    R8G8B8A8_UNORM_SRGB = 29, // 0x0000001D
    R8G8B8A8_UINT = 30, // 0x0000001E
    R8G8B8A8_SNORM = 31, // 0x0000001F
    R8G8B8A8_SINT = 32, // 0x00000020
    R16G16_TYPELESS = 33, // 0x00000021
    R16G16_FLOAT = 34, // 0x00000022
    R16G16_UNORM = 35, // 0x00000023
    R16G16_UINT = 36, // 0x00000024
    R16G16_SNORM = 37, // 0x00000025
    R16G16_SINT = 38, // 0x00000026
    R32_TYPELESS = 39, // 0x00000027
    D32_FLOAT = 40, // 0x00000028
    R32_FLOAT = 41, // 0x00000029
    R32_UINT = 42, // 0x0000002A
    R32_SINT = 43, // 0x0000002B
    R24G8_TYPELESS = 44, // 0x0000002C
    D24_UNORM_S8_UINT = 45, // 0x0000002D
    R24_UNORM_X8_TYPELESS = 46, // 0x0000002E
    X24_TYPELESS_G8_UINT = 47, // 0x0000002F
    R8G8_TYPELESS = 48, // 0x00000030
    R8G8_UNORM = 49, // 0x00000031
    R8G8_UINT = 50, // 0x00000032
    R8G8_SNORM = 51, // 0x00000033
    R8G8_SINT = 52, // 0x00000034
    R16_TYPELESS = 53, // 0x00000035
    R16_FLOAT = 54, // 0x00000036
    D16_UNORM = 55, // 0x00000037
    R16_UNORM = 56, // 0x00000038
    R16_UINT = 57, // 0x00000039
    R16_SNORM = 58, // 0x0000003A
    R16_SINT = 59, // 0x0000003B
    R8_TYPELESS = 60, // 0x0000003C
    R8_UNORM = 61, // 0x0000003D
    R8_UINT = 62, // 0x0000003E
    R8_SNORM = 63, // 0x0000003F
    R8_SINT = 64, // 0x00000040
    A8_UNORM = 65, // 0x00000041
    R1_UNORM = 66, // 0x00000042
    R9G9B9E5_SHAREDEXP = 67, // 0x00000043
    R8G8_B8G8_UNORM = 68, // 0x00000044
    G8R8_G8B8_UNORM = 69, // 0x00000045
    BC1_TYPELESS = 70, // 0x00000046
    BC1_UNORM = 71, // 0x00000047
    BC1_UNORM_SRGB = 72, // 0x00000048
    BC2_TYPELESS = 73, // 0x00000049
    BC2_UNORM = 74, // 0x0000004A
    BC2_UNORM_SRGB = 75, // 0x0000004B
    BC3_TYPELESS = 76, // 0x0000004C
    BC3_UNORM = 77, // 0x0000004D
    BC3_UNORM_SRGB = 78, // 0x0000004E
    BC4_TYPELESS = 79, // 0x0000004F
    BC4_UNORM = 80, // 0x00000050
    BC4_SNORM = 81, // 0x00000051
    BC5_TYPELESS = 82, // 0x00000052
    BC5_UNORM = 83, // 0x00000053
    BC5_SNORM = 84, // 0x00000054
    B5G6R5_UNORM = 85, // 0x00000055
    B5G5R5A1_UNORM = 86, // 0x00000056
    B8G8R8A8_UNORM = 87, // 0x00000057
    B8G8R8X8_UNORM = 88, // 0x00000058
    R10G10B10_XR_BIAS_A2_UNORM = 89, // 0x00000059
    B8G8R8A8_TYPELESS = 90, // 0x0000005A
    B8G8R8A8_UNORM_SRGB = 91, // 0x0000005B
    B8G8R8X8_TYPELESS = 92, // 0x0000005C
    B8G8R8X8_UNORM_SRGB = 93, // 0x0000005D
    BC6H_TYPELESS = 94, // 0x0000005E
    BC6H_UF16 = 95, // 0x0000005F
    BC6H_SF16 = 96, // 0x00000060
    BC7_TYPELESS = 97, // 0x00000061
    BC7_UNORM = 98, // 0x00000062
    BC7_UNORM_SRGB = 99, // 0x00000063
    AYUV = 100, // 0x00000064
    Y410 = 101, // 0x00000065
    Y416 = 102, // 0x00000066
    NV12 = 103, // 0x00000067
    P010 = 104, // 0x00000068
    P016 = 105, // 0x00000069
    OPAQUE_420 = 106, // 0x0000006A
    YUY2 = 107, // 0x0000006B
    Y210 = 108, // 0x0000006C
    Y216 = 109, // 0x0000006D
    NV11 = 110, // 0x0000006E
    AI44 = 111, // 0x0000006F
    IA44 = 112, // 0x00000070
    P8 = 113, // 0x00000071
    A8P8 = 114, // 0x00000072
    B4G4R4A4_UNORM = 115, // 0x00000073
    P208 = 130, // 0x00000082
    V208 = 131, // 0x00000083
    V408 = 132 // 0x00000084
}